{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 获得前n个主成分"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = np.empty((100, 2))\n",
    "X[:,0] = np.random.uniform(0., 100., size=100)\n",
    "X[:,1] = 0.75 * X[:,0] + 3. + np.random.normal(0, 10., size=100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def demean(X):\n",
    "    return X - np.mean(X, axis=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X = demean(X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 377.304688 248.518125\" width=\"377.304688pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n  <style type=\"text/css\">\r\n*{stroke-linecap:butt;stroke-linejoin:round;}\r\n  </style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n  <g id=\"patch_1\">\r\n   <path d=\"M 0 248.518125 \r\nL 377.304688 248.518125 \r\nL 377.304688 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n  </g>\r\n  <g id=\"axes_1\">\r\n   <g id=\"patch_2\">\r\n    <path d=\"M 35.304688 224.64 \r\nL 370.104688 224.64 \r\nL 370.104688 7.2 \r\nL 35.304688 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n   </g>\r\n   <g id=\"PathCollection_1\">\r\n    <defs>\r\n     <path d=\"M 0 3 \r\nC 0.795609 3 1.55874 2.683901 2.12132 2.12132 \r\nC 2.683901 1.55874 3 0.795609 3 0 \r\nC 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \r\nC 1.55874 -2.683901 0.795609 -3 0 -3 \r\nC -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \r\nC -2.683901 -1.55874 -3 -0.795609 -3 0 \r\nC -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \r\nC -1.55874 2.683901 -0.795609 3 0 3 \r\nz\r\n\" id=\"mab36835984\" style=\"stroke:#1f77b4;\"/>\r\n    </defs>\r\n    <g clip-path=\"url(#p1d59caebe2)\">\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"237.205349\" xlink:href=\"#mab36835984\" y=\"78.844389\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"308.67725\" xlink:href=\"#mab36835984\" y=\"67.980317\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"240.220001\" xlink:href=\"#mab36835984\" y=\"48.665145\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"202.412643\" xlink:href=\"#mab36835984\" y=\"132.016114\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"212.159511\" xlink:href=\"#mab36835984\" y=\"125.021726\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"220.099832\" xlink:href=\"#mab36835984\" y=\"120.68759\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"282.505393\" xlink:href=\"#mab36835984\" y=\"50.698765\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"127.183855\" xlink:href=\"#mab36835984\" y=\"147.603572\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"339.0101\" xlink:href=\"#mab36835984\" y=\"31.374641\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"115.707212\" xlink:href=\"#mab36835984\" y=\"142.657896\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"352.552599\" xlink:href=\"#mab36835984\" y=\"47.069776\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"305.155526\" xlink:href=\"#mab36835984\" y=\"40.067\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"176.401885\" xlink:href=\"#mab36835984\" y=\"117.935121\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"265.811299\" xlink:href=\"#mab36835984\" y=\"81.514009\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"185.314657\" xlink:href=\"#mab36835984\" y=\"115.125019\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"116.625107\" xlink:href=\"#mab36835984\" y=\"128.616696\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"246.473267\" xlink:href=\"#mab36835984\" y=\"92.430661\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"223.011162\" xlink:href=\"#mab36835984\" y=\"110.588199\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"177.952532\" xlink:href=\"#mab36835984\" y=\"118.305485\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"335.941597\" xlink:href=\"#mab36835984\" y=\"62.883691\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"289.134835\" xlink:href=\"#mab36835984\" y=\"76.255629\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"56.67047\" xlink:href=\"#mab36835984\" y=\"208.7009\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"115.47232\" xlink:href=\"#mab36835984\" y=\"152.804188\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"229.759927\" xlink:href=\"#mab36835984\" y=\"93.120323\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"64.27989\" xlink:href=\"#mab36835984\" y=\"199.383013\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"183.950464\" xlink:href=\"#mab36835984\" y=\"97.139217\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"247.220655\" xlink:href=\"#mab36835984\" y=\"132.519969\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"196.310874\" xlink:href=\"#mab36835984\" y=\"99.797309\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"313.692427\" xlink:href=\"#mab36835984\" y=\"75.55824\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"301.043844\" xlink:href=\"#mab36835984\" y=\"61.859674\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"339.28293\" xlink:href=\"#mab36835984\" y=\"79.362168\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"158.306243\" xlink:href=\"#mab36835984\" y=\"157.573218\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"294.112126\" xlink:href=\"#mab36835984\" y=\"31.002436\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"325.380512\" xlink:href=\"#mab36835984\" y=\"34.470336\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"275.547373\" xlink:href=\"#mab36835984\" y=\"65.07\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"70.136688\" xlink:href=\"#mab36835984\" y=\"166.354936\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"224.081102\" xlink:href=\"#mab36835984\" y=\"104.987436\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"101.469972\" xlink:href=\"#mab36835984\" y=\"178.845679\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"304.584581\" xlink:href=\"#mab36835984\" y=\"55.458585\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"233.860623\" xlink:href=\"#mab36835984\" y=\"105.957811\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"95.522174\" xlink:href=\"#mab36835984\" y=\"143.952903\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"329.649913\" xlink:href=\"#mab36835984\" y=\"38.536047\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"336.216666\" xlink:href=\"#mab36835984\" y=\"92.079006\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"77.488059\" xlink:href=\"#mab36835984\" y=\"189.132828\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"238.813167\" xlink:href=\"#mab36835984\" y=\"95.09847\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"176.607592\" xlink:href=\"#mab36835984\" y=\"111.08324\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"185.593207\" xlink:href=\"#mab36835984\" y=\"109.856579\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"352.217285\" xlink:href=\"#mab36835984\" y=\"54.058899\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"239.036134\" xlink:href=\"#mab36835984\" y=\"101.26935\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"50.55123\" xlink:href=\"#mab36835984\" y=\"167.894475\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"294.678117\" xlink:href=\"#mab36835984\" y=\"48.94128\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"70.26161\" xlink:href=\"#mab36835984\" y=\"176.377196\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"143.471881\" xlink:href=\"#mab36835984\" y=\"120.636438\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"87.390108\" xlink:href=\"#mab36835984\" y=\"150.828822\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"265.899733\" xlink:href=\"#mab36835984\" y=\"60.937074\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"345.988717\" xlink:href=\"#mab36835984\" y=\"59.906119\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"259.919139\" xlink:href=\"#mab36835984\" y=\"95.15345\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"63.093139\" xlink:href=\"#mab36835984\" y=\"179.387235\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"174.720243\" xlink:href=\"#mab36835984\" y=\"119.53178\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"117.579536\" xlink:href=\"#mab36835984\" y=\"140.91042\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"253.66322\" xlink:href=\"#mab36835984\" y=\"65.677795\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"258.140609\" xlink:href=\"#mab36835984\" y=\"98.643404\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"272.689267\" xlink:href=\"#mab36835984\" y=\"92.93958\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"346.325507\" xlink:href=\"#mab36835984\" y=\"76.218781\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"100.363036\" xlink:href=\"#mab36835984\" y=\"143.068899\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"346.843834\" xlink:href=\"#mab36835984\" y=\"18.263302\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"264.182225\" xlink:href=\"#mab36835984\" y=\"76.833932\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"203.73676\" xlink:href=\"#mab36835984\" y=\"152.790299\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"160.54305\" xlink:href=\"#mab36835984\" y=\"149.205117\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"291.644901\" xlink:href=\"#mab36835984\" y=\"112.674177\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"65.963066\" xlink:href=\"#mab36835984\" y=\"158.548333\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"305.066216\" xlink:href=\"#mab36835984\" y=\"72.493151\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"183.758161\" xlink:href=\"#mab36835984\" y=\"152.93903\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"151.367288\" xlink:href=\"#mab36835984\" y=\"140.465378\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"342.468917\" xlink:href=\"#mab36835984\" y=\"17.111793\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"169.194213\" xlink:href=\"#mab36835984\" y=\"141.559242\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"118.443662\" xlink:href=\"#mab36835984\" y=\"163.849177\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"309.333939\" xlink:href=\"#mab36835984\" y=\"70.809185\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"79.730832\" xlink:href=\"#mab36835984\" y=\"162.145618\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"142.606049\" xlink:href=\"#mab36835984\" y=\"114.740575\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"58.787919\" xlink:href=\"#mab36835984\" y=\"203.826161\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"300.962248\" xlink:href=\"#mab36835984\" y=\"37.515801\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"136.353968\" xlink:href=\"#mab36835984\" y=\"129.779589\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"138.952993\" xlink:href=\"#mab36835984\" y=\"95.074727\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"300.489633\" xlink:href=\"#mab36835984\" y=\"51.537502\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"84.985392\" xlink:href=\"#mab36835984\" y=\"179.022569\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"71.860872\" xlink:href=\"#mab36835984\" y=\"173.820714\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"142.899434\" xlink:href=\"#mab36835984\" y=\"119.646871\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"82.315063\" xlink:href=\"#mab36835984\" y=\"183.736778\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"126.098117\" xlink:href=\"#mab36835984\" y=\"128.618365\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"171.477569\" xlink:href=\"#mab36835984\" y=\"141.045513\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"343.625419\" xlink:href=\"#mab36835984\" y=\"31.409074\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"255.234304\" xlink:href=\"#mab36835984\" y=\"81.301501\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"346.412648\" xlink:href=\"#mab36835984\" y=\"59.183325\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"354.858145\" xlink:href=\"#mab36835984\" y=\"73.899109\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"196.780698\" xlink:href=\"#mab36835984\" y=\"115.027664\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"69.51202\" xlink:href=\"#mab36835984\" y=\"214.728207\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"340.145112\" xlink:href=\"#mab36835984\" y=\"56.065952\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"217.897142\" xlink:href=\"#mab36835984\" y=\"131.646959\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"154.710057\" xlink:href=\"#mab36835984\" y=\"142.426675\"/>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_1\">\r\n    <g id=\"xtick_1\">\r\n     <g id=\"line2d_1\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"ma7087fb02d\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"84.996949\" xlink:href=\"#ma7087fb02d\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_1\">\r\n      <!-- −40 -->\r\n      <defs>\r\n       <path d=\"M 10.59375 35.5 \r\nL 73.1875 35.5 \r\nL 73.1875 27.203125 \r\nL 10.59375 27.203125 \r\nz\r\n\" id=\"DejaVuSans-8722\"/>\r\n       <path d=\"M 37.796875 64.3125 \r\nL 12.890625 25.390625 \r\nL 37.796875 25.390625 \r\nz\r\nM 35.203125 72.90625 \r\nL 47.609375 72.90625 \r\nL 47.609375 25.390625 \r\nL 58.015625 25.390625 \r\nL 58.015625 17.1875 \r\nL 47.609375 17.1875 \r\nL 47.609375 0 \r\nL 37.796875 0 \r\nL 37.796875 17.1875 \r\nL 4.890625 17.1875 \r\nL 4.890625 26.703125 \r\nz\r\n\" id=\"DejaVuSans-52\"/>\r\n       <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n      </defs>\r\n      <g transform=\"translate(74.444605 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_2\">\r\n     <g id=\"line2d_2\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"148.297674\" xlink:href=\"#ma7087fb02d\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_2\">\r\n      <!-- −20 -->\r\n      <defs>\r\n       <path d=\"M 19.1875 8.296875 \r\nL 53.609375 8.296875 \r\nL 53.609375 0 \r\nL 7.328125 0 \r\nL 7.328125 8.296875 \r\nQ 12.9375 14.109375 22.625 23.890625 \r\nQ 32.328125 33.6875 34.8125 36.53125 \r\nQ 39.546875 41.84375 41.421875 45.53125 \r\nQ 43.3125 49.21875 43.3125 52.78125 \r\nQ 43.3125 58.59375 39.234375 62.25 \r\nQ 35.15625 65.921875 28.609375 65.921875 \r\nQ 23.96875 65.921875 18.8125 64.3125 \r\nQ 13.671875 62.703125 7.8125 59.421875 \r\nL 7.8125 69.390625 \r\nQ 13.765625 71.78125 18.9375 73 \r\nQ 24.125 74.21875 28.421875 74.21875 \r\nQ 39.75 74.21875 46.484375 68.546875 \r\nQ 53.21875 62.890625 53.21875 53.421875 \r\nQ 53.21875 48.921875 51.53125 44.890625 \r\nQ 49.859375 40.875 45.40625 35.40625 \r\nQ 44.1875 33.984375 37.640625 27.21875 \r\nQ 31.109375 20.453125 19.1875 8.296875 \r\nz\r\n\" id=\"DejaVuSans-50\"/>\r\n      </defs>\r\n      <g transform=\"translate(137.74533 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_3\">\r\n     <g id=\"line2d_3\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"211.598398\" xlink:href=\"#ma7087fb02d\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_3\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(208.417148 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_4\">\r\n     <g id=\"line2d_4\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"274.899122\" xlink:href=\"#ma7087fb02d\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_4\">\r\n      <!-- 20 -->\r\n      <g transform=\"translate(268.536622 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_5\">\r\n     <g id=\"line2d_5\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"338.199847\" xlink:href=\"#ma7087fb02d\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_5\">\r\n      <!-- 40 -->\r\n      <g transform=\"translate(331.837347 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-52\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_2\">\r\n    <g id=\"ytick_1\">\r\n     <g id=\"line2d_6\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL -3.5 0 \r\n\" id=\"m04909c7e5a\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m04909c7e5a\" y=\"189.851991\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_6\">\r\n      <!-- −40 -->\r\n      <g transform=\"translate(7.2 193.65121)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-52\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_2\">\r\n     <g id=\"line2d_7\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m04909c7e5a\" y=\"149.036837\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_7\">\r\n      <!-- −20 -->\r\n      <g transform=\"translate(7.2 152.836056)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_3\">\r\n     <g id=\"line2d_8\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m04909c7e5a\" y=\"108.221683\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_8\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(21.942188 112.020902)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_4\">\r\n     <g id=\"line2d_9\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m04909c7e5a\" y=\"67.406529\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_9\">\r\n      <!-- 20 -->\r\n      <g transform=\"translate(15.579688 71.205748)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_5\">\r\n     <g id=\"line2d_10\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m04909c7e5a\" y=\"26.591375\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_10\">\r\n      <!-- 40 -->\r\n      <g transform=\"translate(15.579688 30.390594)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-52\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"patch_3\">\r\n    <path d=\"M 35.304688 224.64 \r\nL 35.304688 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_4\">\r\n    <path d=\"M 370.104688 224.64 \r\nL 370.104688 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_5\">\r\n    <path d=\"M 35.304688 224.64 \r\nL 370.104688 224.64 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_6\">\r\n    <path d=\"M 35.304688 7.2 \r\nL 370.104688 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n  </g>\r\n </g>\r\n <defs>\r\n  <clipPath id=\"p1d59caebe2\">\r\n   <rect height=\"217.44\" width=\"334.8\" x=\"35.304688\" y=\"7.2\"/>\r\n  </clipPath>\r\n </defs>\r\n</svg>\r\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "plt.scatter(X[:,0], X[:,1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def f(w, X):\n",
    "    return np.sum((X.dot(w)**2)) / len(X)\n",
    "\n",
    "def df(w, X):\n",
    "    return X.T.dot(X.dot(w)) * 2. / len(X)\n",
    "\n",
    "def direction(w):\n",
    "    return w / np.linalg.norm(w)\n",
    "\n",
    "def first_component(X, initial_w, eta, n_iters = 1e4, epsilon=1e-8):\n",
    "    \n",
    "    w = direction(initial_w) \n",
    "    cur_iter = 0\n",
    "\n",
    "    while cur_iter < n_iters:\n",
    "        gradient = df(w, X)\n",
    "        last_w = w\n",
    "        w = w + eta * gradient\n",
    "        w = direction(w) \n",
    "        if(abs(f(w, X) - f(last_w, X)) < epsilon):\n",
    "            break\n",
    "            \n",
    "        cur_iter += 1\n",
    "\n",
    "    return w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": "array([0.78975367, 0.61342411])"
     },
     "metadata": {},
     "execution_count": 7
    }
   ],
   "source": [
    "initial_w = np.random.random(X.shape[1])\n",
    "eta = 0.01\n",
    "w = first_component(X, initial_w, eta)\n",
    "w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 求去掉第一主成分的分量\n",
    "X2 = np.empty(X.shape)\n",
    "# # 对每一个样本进行减法操作\n",
    "# for i in range(len(X)):\n",
    "#     X2[i] = X[i] - X[i].dot(w) * w\n",
    "X2 = X - (X.dot(w)).reshape(-1, 1)*w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"248.518125pt\" version=\"1.1\" viewBox=\"0 0 377.304688 248.518125\" width=\"377.304688pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n  <style type=\"text/css\">\r\n*{stroke-linecap:butt;stroke-linejoin:round;}\r\n  </style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n  <g id=\"patch_1\">\r\n   <path d=\"M 0 248.518125 \r\nL 377.304688 248.518125 \r\nL 377.304688 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n  </g>\r\n  <g id=\"axes_1\">\r\n   <g id=\"patch_2\">\r\n    <path d=\"M 35.304688 224.64 \r\nL 370.104688 224.64 \r\nL 370.104688 7.2 \r\nL 35.304688 7.2 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n   </g>\r\n   <g id=\"PathCollection_1\">\r\n    <defs>\r\n     <path d=\"M 0 3 \r\nC 0.795609 3 1.55874 2.683901 2.12132 2.12132 \r\nC 2.683901 1.55874 3 0.795609 3 0 \r\nC 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \r\nC 1.55874 -2.683901 0.795609 -3 0 -3 \r\nC -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \r\nC -2.683901 -1.55874 -3 -0.795609 -3 0 \r\nC -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \r\nC -1.55874 2.683901 -0.795609 3 0 3 \r\nz\r\n\" id=\"mb4690fa2db\" style=\"stroke:#1f77b4;\"/>\r\n    </defs>\r\n    <g clip-path=\"url(#pf33722d0b1)\">\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"155.331026\" xlink:href=\"#mb4690fa2db\" y=\"85.157337\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"234.476423\" xlink:href=\"#mb4690fa2db\" y=\"136.551363\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"64.315857\" xlink:href=\"#mb4690fa2db\" y=\"26.055529\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"268.814352\" xlink:href=\"#mb4690fa2db\" y=\"158.849115\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"262.106468\" xlink:href=\"#mb4690fa2db\" y=\"154.493269\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"260.971656\" xlink:href=\"#mb4690fa2db\" y=\"153.756365\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"138.002441\" xlink:href=\"#mb4690fa2db\" y=\"73.904809\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"198.690842\" xlink:href=\"#mb4690fa2db\" y=\"113.31356\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"166.493509\" xlink:href=\"#mb4690fa2db\" y=\"92.405831\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"164.743106\" xlink:href=\"#mb4690fa2db\" y=\"91.269185\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"237.851464\" xlink:href=\"#mb4690fa2db\" y=\"138.742987\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"140.262411\" xlink:href=\"#mb4690fa2db\" y=\"75.372348\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"182.757129\" xlink:href=\"#mb4690fa2db\" y=\"102.96681\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"209.287407\" xlink:href=\"#mb4690fa2db\" y=\"120.194569\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"188.0067\" xlink:href=\"#mb4690fa2db\" y=\"106.375683\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"121.626735\" xlink:href=\"#mb4690fa2db\" y=\"63.271045\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"213.19784\" xlink:href=\"#mb4690fa2db\" y=\"122.733856\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"233.538517\" xlink:href=\"#mb4690fa2db\" y=\"135.942322\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"186.398314\" xlink:href=\"#mb4690fa2db\" y=\"105.331258\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"261.644717\" xlink:href=\"#mb4690fa2db\" y=\"154.193425\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"229.6766\" xlink:href=\"#mb4690fa2db\" y=\"133.434539\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"280.541927\" xlink:href=\"#mb4690fa2db\" y=\"166.464559\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"196.580472\" xlink:href=\"#mb4690fa2db\" y=\"111.943166\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"188.814323\" xlink:href=\"#mb4690fa2db\" y=\"106.900123\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"263.05939\" xlink:href=\"#mb4690fa2db\" y=\"155.112061\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"128.739286\" xlink:href=\"#mb4690fa2db\" y=\"67.889666\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"341.655258\" xlink:href=\"#mb4690fa2db\" y=\"206.149244\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"156.829889\" xlink:href=\"#mb4690fa2db\" y=\"86.130641\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"266.507352\" xlink:href=\"#mb4690fa2db\" y=\"157.351037\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"202.909044\" xlink:href=\"#mb4690fa2db\" y=\"116.052701\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"319.27042\" xlink:href=\"#mb4690fa2db\" y=\"191.613377\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"279.823122\" xlink:href=\"#mb4690fa2db\" y=\"165.997794\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"93.927512\" xlink:href=\"#mb4690fa2db\" y=\"45.284218\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"154.651212\" xlink:href=\"#mb4690fa2db\" y=\"84.715891\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"172.563216\" xlink:href=\"#mb4690fa2db\" y=\"96.347268\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"167.518998\" xlink:href=\"#mb4690fa2db\" y=\"93.071744\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"217.459233\" xlink:href=\"#mb4690fa2db\" y=\"125.501044\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"256.990161\" xlink:href=\"#mb4690fa2db\" y=\"151.170933\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"188.217395\" xlink:href=\"#mb4690fa2db\" y=\"106.5125\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"236.088524\" xlink:href=\"#mb4690fa2db\" y=\"137.5982\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"136.761605\" xlink:href=\"#mb4690fa2db\" y=\"73.099057\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"174.346407\" xlink:href=\"#mb4690fa2db\" y=\"97.505205\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"354.766675\" xlink:href=\"#mb4690fa2db\" y=\"214.663302\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"251.518731\" xlink:href=\"#mb4690fa2db\" y=\"147.617993\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"209.488196\" xlink:href=\"#mb4690fa2db\" y=\"120.324954\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"161.331931\" xlink:href=\"#mb4690fa2db\" y=\"89.054097\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"171.724171\" xlink:href=\"#mb4690fa2db\" y=\"95.802425\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"259.506289\" xlink:href=\"#mb4690fa2db\" y=\"152.804811\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"229.433017\" xlink:href=\"#mb4690fa2db\" y=\"133.276366\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"141.267083\" xlink:href=\"#mb4690fa2db\" y=\"76.024744\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"151.776767\" xlink:href=\"#mb4690fa2db\" y=\"82.849335\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"199.53468\" xlink:href=\"#mb4690fa2db\" y=\"113.861517\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"138.976625\" xlink:href=\"#mb4690fa2db\" y=\"74.537407\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"145.660805\" xlink:href=\"#mb4690fa2db\" y=\"78.87786\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"144.103645\" xlink:href=\"#mb4690fa2db\" y=\"77.8667\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"268.166155\" xlink:href=\"#mb4690fa2db\" y=\"158.428201\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"243.219635\" xlink:href=\"#mb4690fa2db\" y=\"142.228874\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"197.693146\" xlink:href=\"#mb4690fa2db\" y=\"112.665695\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"185.152263\" xlink:href=\"#mb4690fa2db\" y=\"104.52212\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"162.172352\" xlink:href=\"#mb4690fa2db\" y=\"89.599835\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"139.6986\" xlink:href=\"#mb4690fa2db\" y=\"75.00623\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"251.471255\" xlink:href=\"#mb4690fa2db\" y=\"147.587164\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"256.494932\" xlink:href=\"#mb4690fa2db\" y=\"150.84935\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"320.488458\" xlink:href=\"#mb4690fa2db\" y=\"192.404325\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"141.651814\" xlink:href=\"#mb4690fa2db\" y=\"76.274574\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"137.324769\" xlink:href=\"#mb4690fa2db\" y=\"73.464755\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"191.839741\" xlink:href=\"#mb4690fa2db\" y=\"108.864715\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"336.870159\" xlink:href=\"#mb4690fa2db\" y=\"203.041981\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"256.813766\" xlink:href=\"#mb4690fa2db\" y=\"151.056389\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"349.283197\" xlink:href=\"#mb4690fa2db\" y=\"211.102539\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"136.100099\" xlink:href=\"#mb4690fa2db\" y=\"72.6695\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"243.061774\" xlink:href=\"#mb4690fa2db\" y=\"142.126365\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"305.577868\" xlink:href=\"#mb4690fa2db\" y=\"182.721951\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"214.479474\" xlink:href=\"#mb4690fa2db\" y=\"123.566101\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"126.713355\" xlink:href=\"#mb4690fa2db\" y=\"66.574103\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"246.29556\" xlink:href=\"#mb4690fa2db\" y=\"144.226263\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"236.368548\" xlink:href=\"#mb4690fa2db\" y=\"137.780038\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"244.501144\" xlink:href=\"#mb4690fa2db\" y=\"143.061038\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"169.40989\" xlink:href=\"#mb4690fa2db\" y=\"94.299618\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"118.882774\" xlink:href=\"#mb4690fa2db\" y=\"61.489221\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"268.432969\" xlink:href=\"#mb4690fa2db\" y=\"158.601459\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"125.496277\" xlink:href=\"#mb4690fa2db\" y=\"65.783779\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"156.685895\" xlink:href=\"#mb4690fa2db\" y=\"86.037137\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"50.6427\" xlink:href=\"#mb4690fa2db\" y=\"17.176698\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"169.258708\" xlink:href=\"#mb4690fa2db\" y=\"94.201446\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"231.342488\" xlink:href=\"#mb4690fa2db\" y=\"134.516304\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"193.961479\" xlink:href=\"#mb4690fa2db\" y=\"110.242491\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"134.924956\" xlink:href=\"#mb4690fa2db\" y=\"71.906406\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"242.062785\" xlink:href=\"#mb4690fa2db\" y=\"141.477659\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"136.693402\" xlink:href=\"#mb4690fa2db\" y=\"73.054768\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"248.295018\" xlink:href=\"#mb4690fa2db\" y=\"145.524636\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"173.940828\" xlink:href=\"#mb4690fa2db\" y=\"97.241838\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"191.796147\" xlink:href=\"#mb4690fa2db\" y=\"108.836407\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"266.545564\" xlink:href=\"#mb4690fa2db\" y=\"157.37585\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"326.690583\" xlink:href=\"#mb4690fa2db\" y=\"196.43175\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"205.92777\" xlink:href=\"#mb4690fa2db\" y=\"118.012948\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"320.093552\" xlink:href=\"#mb4690fa2db\" y=\"192.147888\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"246.684119\" xlink:href=\"#mb4690fa2db\" y=\"144.478579\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"292.261598\" xlink:href=\"#mb4690fa2db\" y=\"174.07487\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"226.020633\" xlink:href=\"#mb4690fa2db\" y=\"131.060493\"/>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_1\">\r\n    <g id=\"xtick_1\">\r\n     <g id=\"line2d_1\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m8b23edbe44\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"74.148832\" xlink:href=\"#m8b23edbe44\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_1\">\r\n      <!-- −10 -->\r\n      <defs>\r\n       <path d=\"M 10.59375 35.5 \r\nL 73.1875 35.5 \r\nL 73.1875 27.203125 \r\nL 10.59375 27.203125 \r\nz\r\n\" id=\"DejaVuSans-8722\"/>\r\n       <path d=\"M 12.40625 8.296875 \r\nL 28.515625 8.296875 \r\nL 28.515625 63.921875 \r\nL 10.984375 60.40625 \r\nL 10.984375 69.390625 \r\nL 28.421875 72.90625 \r\nL 38.28125 72.90625 \r\nL 38.28125 8.296875 \r\nL 54.390625 8.296875 \r\nL 54.390625 0 \r\nL 12.40625 0 \r\nz\r\n\" id=\"DejaVuSans-49\"/>\r\n       <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n      </defs>\r\n      <g transform=\"translate(63.596488 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_2\">\r\n     <g id=\"line2d_2\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"141.014541\" xlink:href=\"#m8b23edbe44\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_2\">\r\n      <!-- −5 -->\r\n      <defs>\r\n       <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.796875 36.28125 \r\nz\r\n\" id=\"DejaVuSans-53\"/>\r\n      </defs>\r\n      <g transform=\"translate(133.643447 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_3\">\r\n     <g id=\"line2d_3\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"207.880251\" xlink:href=\"#m8b23edbe44\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_3\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(204.699001 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_4\">\r\n     <g id=\"line2d_4\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"274.74596\" xlink:href=\"#m8b23edbe44\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_4\">\r\n      <!-- 5 -->\r\n      <g transform=\"translate(271.56471 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_5\">\r\n     <g id=\"line2d_5\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"341.61167\" xlink:href=\"#m8b23edbe44\" y=\"224.64\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_5\">\r\n      <!-- 10 -->\r\n      <g transform=\"translate(335.24917 239.238437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_2\">\r\n    <g id=\"ytick_1\">\r\n     <g id=\"line2d_6\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL -3.5 0 \r\n\" id=\"m8bcf05276e\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"220.457602\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_6\">\r\n      <!-- −15 -->\r\n      <g transform=\"translate(7.2 224.256821)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_2\">\r\n     <g id=\"line2d_7\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"186.732006\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_7\">\r\n      <!-- −10 -->\r\n      <g transform=\"translate(7.2 190.531225)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_3\">\r\n     <g id=\"line2d_8\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"153.006411\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_8\">\r\n      <!-- −5 -->\r\n      <g transform=\"translate(13.5625 156.805629)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_4\">\r\n     <g id=\"line2d_9\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"119.280815\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_9\">\r\n      <!-- 0 -->\r\n      <g transform=\"translate(21.942188 123.080034)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_5\">\r\n     <g id=\"line2d_10\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"85.555219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_10\">\r\n      <!-- 5 -->\r\n      <g transform=\"translate(21.942188 89.354438)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_6\">\r\n     <g id=\"line2d_11\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"51.829624\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_11\">\r\n      <!-- 10 -->\r\n      <g transform=\"translate(15.579688 55.628842)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_7\">\r\n     <g id=\"line2d_12\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"35.304688\" xlink:href=\"#m8bcf05276e\" y=\"18.104028\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_12\">\r\n      <!-- 15 -->\r\n      <g transform=\"translate(15.579688 21.903247)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"patch_3\">\r\n    <path d=\"M 35.304688 224.64 \r\nL 35.304688 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_4\">\r\n    <path d=\"M 370.104688 224.64 \r\nL 370.104688 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_5\">\r\n    <path d=\"M 35.304687 224.64 \r\nL 370.104688 224.64 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_6\">\r\n    <path d=\"M 35.304687 7.2 \r\nL 370.104688 7.2 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n  </g>\r\n </g>\r\n <defs>\r\n  <clipPath id=\"pf33722d0b1\">\r\n   <rect height=\"217.44\" width=\"334.8\" x=\"35.304688\" y=\"7.2\"/>\r\n  </clipPath>\r\n </defs>\r\n</svg>\r\n",
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXkAAAD4CAYAAAAJmJb0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAWUElEQVR4nO3df2zc9X3H8dc7nqlMVMmpMJQcZElR5pbUw1YtGhRtgq7FlK5wyUZDBBPSqqaTyqTQylKiphBGWKJGjEjT2i1oCKRQcGDBTRtKSkk1JETWOrLBSWnWQEOaS9S4C9YmOBFjv/eH75yzcz++57vvfe++93xIln3f+/q+n5yddz55f9+f98fcXQCAeFoQ9QAAAOEhyANAjBHkASDGCPIAEGMEeQCIsT+KegC5LrvsMl+6dGnUwwCAhnL48OE/uHtHvufqKsgvXbpUQ0NDUQ8DABqKmb1T6DnSNQAQYwR5AIgxgjwAxBhBHgBijCAPADFWV9U18zU4nNKOA8d0ejytxe1t6u/rVLInEfWwACByVZnJm9njZnbWzI7kHNtiZikzG8l83FqNa801OJzSpr2jSo2n5ZJS42lt2juqweFUGJcDgIZSrXTNE5JuyXP8UXfvzny8UKVrzbLjwDGlJyZnHUtPTGrHgWNhXA4AGkpVgry7vyLpXDVeq1ynx9NlHQeAZhL2jdd7zeyNTDpnUb4TzGy9mQ2Z2dDY2FjZF1jc3lbWcQBoJmEG+e9LukZSt6Qzkh7Jd5K773L3Xnfv7ejI23qhqP6+TrW1tsw61tbaov6+zvJHDAAxE1p1jbv/Pvu1mT0m6cdhXCdbRUN1DQBcLLQgb2ZXuvuZzMPVko4UO78SyZ4EQR0A8qhKkDezpyXdKOkyMzsl6QFJN5pZtySXdELS16txLQBAcFUJ8u6+Ls/hf6/Ga4eFBVQAmkEsVryWK7uAKltfn11AJYlADyBWmrJ3DQuoADSLpgzyLKAC0CyaMsizgApAs2jKIM8CKgDNoilvvLKACkCzaMogL7GACkBzaMp0DQA0C4I8AMQYQR4AYowgDwAxRpAHgBgjyANAjBHkASDGCPIAEGMEeQCIMYI8AMQYQR4AYqxpe9dEhW0HAdQSQb6G2HYQQK2Rrqkhth0EUGsE+Rpi20EAtUaQryG2HQRQawT5GmLbQQC1xo3XGmLbQQC1VpUgb2aPS/pLSWfd/dOZYx+TNCBpqaQTkr7i7u9W43qNjG0HAdRStdI1T0i6Zc6xjZJedvflkl7OPAYA1FBVgry7vyLp3JzDt0t6MvP1k5KS1bgWACC4MG+8XuHuZyQp8/nyfCeZ2XozGzKzobGxsRCHAwDNJ/LqGnff5e697t7b0dER9XAAIFbCDPK/N7MrJSnz+WyI1wIA5BFmkN8n6Z7M1/dI+mGI1wIA5FGVIG9mT0t6TVKnmZ0ys69K2i7pC2b2G0lfyDwGANRQVerk3X1dgaf+ohqvDwCYn8hvvAIAwkNbgxhiYxIAWebuUY9hRm9vrw8NDUU9jIY2d2MSSTJJLilBwAdiycwOu3tvvudI18RMvo1Jsv+MZ3eiGhxO1X5gACJBkI+ZUhuQsBMV0FwI8jETZAOS1Hhayzbu16rtB5nVAzFHkI+ZfBuT5OOaDvb3DYxo8+Bo+AMDEAmCfMwkexLatqZLicyM3kqc75J2Hzqp7gd/yqweiCFKKGMod2OS3HLKYnVU4+kJbdo7OvP9AOKBmXzMJXsSenXj5/Tb7V+amd0Xwk1ZIH4I8k2kv6+zZPqmVHUOgMZCuqaJJHsSGnrnnJ46dLJg6mZxexsrZoEYYcVrExocTunBHx3Vu+9PzDre1tqiv/pMQv9xOHXRgiqTdNfKJdqa7KrhSAEEwYpXzJLsSWj4/pu1c223Eu1tMk23PNi2pks///XYRQFeulCFc9djr9V8vADmj5k8Zlm2cX/RKhxJWnhJix5e3UUKB6gTzOQRWJAVs++dn9SGgRGtuP9FauuBOkeQxyxBKnCy3js/qf7nXifQA3WMII9Zkj0J3bVySeDzJyZd39pDoAfqFUEeF9ma7NLdZQT6SXdtGBihNQJQhwjyyGtrsks713Zr4SWlm51lZVsjEOiB+kGQR0HJnoSO/sMtZc3qaY0A1BeCPErKzurb21oDnU9rBKB+0NYAgcztbDl3H9lctEYA6gdBHmXLButCrRFu+mTHrH8EsnvL5n4vgNpgxSsqkm/GvuPAMaUKpGxazLTus1fTAweoomIrXkMP8mZ2QtL/SZqU9GGhgUgE+bgI0hqBhmdA9RQL8rVK19zk7n+o0bUQscXtbQVn8lnZhmeSCPRAiKiuQdUF3Uxckp7+r9+FPBqgudUiyLukn5rZYTNbP/dJM1tvZkNmNjQ2NlaD4SBsczcTL2bSXcs27teq7QdZRAWEoBY5+cXuftrMLpf0kqS/d/dX8p1LTj5+Ng+OzqRlSiFPD8xPpK2G3f105vNZSc9Luj7sa6J+lNMHJ5unX8rMHqiaUIO8mS00s49mv5Z0s6QjYV4T9Wdrsksntn9Jd69cohYL1sg4W1tPoAcqE2q6xsw+oenZuzRdyfMDd3+40Pmka5rHqu0HS1bgZC26tFUPfHkFC6mAAiJL17j72+5+XeZjRbEAj+ZSzuYk774/oQ0DI+wvC8wDJZSIRHZzkqCBXpJefeucNg+OhjYmII4I8ojM1mSXHl3bPVNqGSTg7z50kpuyQBnoXYO6MTic0rf2vK7JgL+TCy9p0cOru8jVo+lFWkIJBJXsSeiRr1yn1gXBkjjvnZ/Ut55lf1mgGII86kqyJ6Edd1yn1oC/mZNTrgd/dDTcQQENjCCPupPsSeg3/xi8rn5uT3sAFxDkUbe2Jrv01rZbtXNtd1lVOAAuIMij7mXLLQsJuvcs0IzY/g8NIdu0bG6zs9YFpi23rZh1jP1lgQuYyaNhbE12aWemrt4kJdrbtOOO62YF8Owm46nxtFz0wAGok0esFOuJ097Wqi230QMH8UOdPJrG6SJNz8bTE+qnrh5NhiCPWFlcYjeqiSnXhoERXfudnxDs0RQI8oiVoPvLvj8xpW/uGSHQI/YI8oiV7P6yQRZRTbm0YWBE12x6ge6WiC2CPGJnpgdOS7AlVJPu2n3oJCkcxBJ18oilbAXNgz86GrjtwfsTU9q0d3TW9wONjpk8YivZk9Dw/TcH3khcktITk9owMELPesQGQR6xtzXZpbtXLlHAPcQlTS+i2jAwok+RwkGDYzEUms7mwdGL2iOUcvfKJTOtFYB6w2IoIMd8ZvZPHTrJjB4NiZk8mlq2mVmhVghzJWh4hjrETB4oINmT0KsbPxe4Zz0Nz9BoCPKASvesz0UFDhpJ6EHezG4xs2NmdtzMNoZ9PWC+sq2MF15Sui2CxKwejSHUnLyZtUj6b0lfkHRK0i8lrXP3X+U7n5w86kW5uXpJWnRpqx74Mq2MUXtR5uSvl3Tc3d929/OSnpF0e8jXBCqWm6sP0vBMmt5QvP85WhmjvoQd5BOSfpfz+FTm2AwzW29mQ2Y2NDY2FvJwgPJkG54lSrQwzpqYdO04cCzkUQHBhR3k8xUszMoPufsud+91996Ojo6QhwOUr9xZfWo8zU1Z1I2wg/wpSVfnPL5K0umQrwmEopxZfWo8rfsGRmhhjMiFHeR/KWm5mS0zs0sk3SlpX8jXBEKTO6tvXVC8st7FSllEL9Qg7+4fSrpX0gFJb0ra4+5Hw7wmUAvJnoR23HGd2ttai57nEjX1iBRtDYAqWLX9YMlyy7bWFm1b00WJJaqOtgZAyPr7Oku2RUhPTFJ5g5ojyANVkG2LUCrQny5jcRVQDQR5oEq2Jrv06NruotU3iwPW2wPVwh6vQBUlexJK9iQ0OJzSpr2jSk9MzjzX1tqi/r7OWedn2yecHk9rMW2MEQKCPBCCbKAuFsDn/kOQbXiW+/1ApaiuASJSrCKHzUlQDqprgDpU7CYsK2ZRLQR5ICKlbsK6pN2HThLoURGCPBCR/r7OQA3Pdh86qaUb97NqFvPCjVcgIrk3Z4NsTpIaT6v/uddnfS9QCjN5IELlbiQ+MenaQK4eZSDIA3WgnI3EpekUzqe+8xPSNyiJdA1QJ7YmuyRNtycOUticnpiirh4lMZMH6kiQ1gi5aHqGUlgMBdSpweGU+p99XRNTwf+OmqS7Vi6Z+V8BmgOLoYAGlN2YpK01+F/TbG39ivtfJF8PSQR5oK4lexJ686Ev6u6VS1Rit8FZ3js/yYpZSCLIAw1ha7JLb2/7knZm8vVB4j0rZiFRXQM0lGwrYynYloPSdKCXRJ6+STGTBxpUf1+nWgLmcJ46dJIcfZOiugZoYIPDKX37+VG9d36y9MkZ7W2t2nLbCmrrY6RYdQ3pGqCB5aZvNg+OzqRmihlPT6j/WXrgNAvSNUBMbE126e6ArREmppxFVE2CmTwQI+W0RkiNp7V04/6Zx6uu+Zie+toNIY4OUWAmD8RMua0Rsl5965zueuy1kEaFqIQW5M1si5mlzGwk83FrWNcCMFtuC+PWluCrqF596xybk8RM2DP5R929O/PxQsjXAjBHsiehHX99nRZd2jpzrL2ttch3TKdxNgyM6FpaGccCOXkg5nIrcLJyc/GFvD8xpQ0DIxp65xwLqRpY2DP5e83sDTN73MwW5TvBzNab2ZCZDY2NjYU8HADS9E3WoHazkKqhVRTkzexnZnYkz8ftkr4v6RpJ3ZLOSHok32u4+y5373X33o6OjkqGAyCgp752Q1mBnnLLxlWTFa9mtlTSj93908XOY8UrUHuDwyndNzASaDeqFjOt++zVpG/qTCT95M3sypyHqyUdCetaAOavnP1lJ921+9BJfWLjflI4DSLMG6/fNbNuTXc8PSHp6yFeC0AFsjPzIG0RJGlK0jcHRiTRGqHehTaTd/e/cfcud/9Td7/N3c+EdS0Aldua7NLOtd0lSyyzpkSuvhFQQglgxtxyy2s2vaDJIvftTgfoZ49o0dYAQEHrPnt10ecXl9k6AbVHkAdQ0NZkl5ZfvjDvcws0vXEJ6htBHkBRL33zxos2Em9rXaB/WtvNTdcGwM5QAKpucDilHQeO6fR4Wovb29Tf18k/CCGKpE4eQHMaHE5p095RpcbTck03PLtvYESbB0ejHlpTIsgDqKodB44pPTF7z1kXm4lHhSAPoKoKlVW6qKuPAkEeQFUVK6ukrr72CPIAqqq/r1OF9qKirr72CPIAqirb8GxuoG9rbaGuPgIEeQBVl7uZuElKtLdp25ouyigjQO8aAKHIt+1gIdTVh4cgDyBS2br6bNllajytTXuna+oJ9JUjXQMgUvnq6tMTk5RbVglBHkCkCpVVUm5ZHQR5AJEqVFZJuWV1EOQBRKq/r1NtrS2zjlFuWT3ceAUQqezNVaprwkGQBxC5csotUR7SNQAQY8zkATQsFlGVRpAH0JBYRBUM6RoADYlFVMEQ5AE0JBZRBVNRkDezO8zsqJlNmVnvnOc2mdlxMztmZn2VDRMAZmMRVTCVzuSPSFoj6ZXcg2Z2raQ7Ja2QdIuk75lZy8XfDgDzwyKqYCq68erub0qS2UX7wNwu6Rl3/0DSb83suKTrJb1WyfUAIItFVMGEVV2TkHQo5/GpzLGLmNl6SeslacmSJSENB0AcsYiqtJJB3sx+JunjeZ76trv/sNC35Tnm+U50912SdklSb29v3nMAAPNTMsi7++fn8bqnJF2d8/gqSafn8ToAUFWDwylt2XdU4+kJSdKiS1v1wJdXxPZ/BGGVUO6TdKeZfcTMlklaLukXIV0LAAIZHE6p/9nXZwK8JL37/oQ2DIxo8+BohCMLT6UllKvN7JSkGyTtN7MDkuTuRyXtkfQrSS9K+oa7TxZ+JQAI344DxzQxlT8r/NShkxocTtV4ROGrKMi7+/PufpW7f8Tdr3D3vpznHnb3a9y9091/UvlQAaAyxRZKuRTL1bKseAXQNEotlIrjalmCPICm0d/XqdYF+Yr/pi1ub9PgcEqrth/Uso37tWr7wYZP4dCFEkDTyFbQbNr7htITU7Oea2tt0U2f7IhdZ0tm8gCaSrInoTcf+qJ2ru1Wor1NJinR3qZta7r081+Pxa6zJTN5AE0p32rZ+wZG8p7byLl6ZvIAkBHHzpYEeQDIiGNnS9I1AJBRTmfLRtlfliAPADmCdLZspP1lSdcAQJkaaX9ZZvIAUKZC1Tap8bRWbT9YVykcZvIAUKZC1Tam6UDvupDCiXrFLEEeAMqUrwrHdPHOSPWQwiHIA0CZkj0JbVvTNWvFbKFt7aJeSEVOHgDmYW4VzqrtB5XKE9CjXkjFTB4AqqDUQqqoulsykweAKii2kCrKunqCPABUSaGFVMXq6sMO8qRrACBkhW6+1uKmLDN5AAjZ4va2gjdlw+6Bw0weAEJW6KZsdieqMBdQEeQBIGT56uprtRMV6RoAqIGodqJiJg8AEanFTlQVBXkzu8PMjprZlJn15hxfamZpMxvJfPxr5UMFgHipxU5UlaZrjkhaI+nf8jz3lrt3V/j6ABBb5exENV8VBXl3f1OSzKw6owGAJhNkJ6pKhJmTX2Zmw2b2n2b2ZyFeBwBQQMmZvJn9TNLH8zz1bXf/YYFvOyNpibv/j5l9RtKgma1w9//N8/rrJa2XpCVLlgQfOQCgpJJB3t0/X+6LuvsHkj7IfH3YzN6S9CeShvKcu0vSLknq7e0t1JIZADAPoaRrzKzDzFoyX39C0nJJb4dxLQBAYZWWUK42s1OSbpC038wOZJ76c0lvmNnrkp6T9Hfufq6yoQIAymXu9ZMhMbMxSe9EPY4CLpP0h6gHUSd4Ly7gvbiA9+KCWr8Xf+zuHfmeqKsgX8/MbMjde0ufGX+8FxfwXlzAe3FBPb0XtDUAgBgjyANAjBHkg9sV9QDqCO/FBbwXF/BeXFA37wU5eQCIMWbyABBjBHkAiDGCfAmFeuZnnttkZsfN7JiZ9UU1xiiY2RYzS+XsGXBr1GOqJTO7JfNzP25mG6MeT5TM7ISZjWZ+Dy5qXRJnZva4mZ01syM5xz5mZi+Z2W8ynxdFOUaCfGnZnvmv5B40s2sl3SlphaRbJH0v28qhiTzq7t2ZjxeiHkytZH7O/yLpi5KulbQu8/vQzG7K/B7URW14DT2h6b//uTZKetndl0t6OfM4MgT5Etz9TXfPt6vu7ZKecfcP3P23ko5Lur62o0NErpd03N3fdvfzkp7R9O8Dmoy7vyJpbsuW2yU9mfn6SUnJmg5qDoL8/CUk/S7n8anMsWZyr5m9kfkva6T/Ja0xfvazuaSfmtnhTOvwZneFu5+RpMzny6McTKXb/8XCPHvm59sOK1b1qMXeF0nfl/SQpv/MD0l6RNLf1m50kYr9z75Mq9z9tJldLuklM/t1ZoaLOkCQ1/x65mt69nZ1zuOrJJ2uzojqQ9D3xcwek/TjkIdTT2L/sy+Hu5/OfD5rZs9rOp3VzEH+92Z2pbufMbMrJZ2NcjCka+Zvn6Q7zewjZrZM0z3zfxHxmGom88ubtVrTN6ibxS8lLTezZWZ2iaZvwO+LeEyRMLOFZvbR7NeSblZz/S7ks0/SPZmv75FUKBtQE8zkSzCz1ZL+WVKHpnvmj7h7n7sfNbM9kn4l6UNJ33D3ySjHWmPfNbNuTacpTkj6erTDqR13/9DM7pV0QFKLpMfd/WjEw4rKFZKeNzNpOp78wN1fjHZItWNmT0u6UdJlmb01HpC0XdIeM/uqpJOS7ohuhLQ1AIBYI10DADFGkAeAGCPIA0CMEeQBIMYI8gAQYwR5AIgxgjwAxNj/Awc8UCldqf/OAAAAAElFTkSuQmCC\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "plt.scatter(X2[:,0], X2[:,1])\n",
    "plt.show()\n",
    "# 绘图之后发现基本垂直于0.75斜率"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X2 = X - X.dot(w).reshape(-1, 1) * w"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x10cd441d0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(X2[:,0], X2[:,1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "output_type": "execute_result",
     "data": {
      "text/plain": "array([-0.61342153,  0.78975568])"
     },
     "metadata": {},
     "execution_count": 15
    }
   ],
   "source": [
    "w2 = first_component(X2, initial_w, eta)\n",
    "w2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": "<Figure size 432x288 with 1 Axes>",
      "image/svg+xml": "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\r\n<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\r\n  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\r\n<!-- Created with matplotlib (https://matplotlib.org/) -->\r\n<svg height=\"250.772661pt\" version=\"1.1\" viewBox=\"0 0 393.207812 250.772661\" width=\"393.207812pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\r\n <defs>\r\n  <style type=\"text/css\">\r\n*{stroke-linecap:butt;stroke-linejoin:round;}\r\n  </style>\r\n </defs>\r\n <g id=\"figure_1\">\r\n  <g id=\"patch_1\">\r\n   <path d=\"M 0 250.772661 \r\nL 393.207812 250.772661 \r\nL 393.207812 0 \r\nL 0 0 \r\nz\r\n\" style=\"fill:none;\"/>\r\n  </g>\r\n  <g id=\"axes_1\">\r\n   <g id=\"patch_2\">\r\n    <path d=\"M 51.207813 226.894536 \r\nL 386.007812 226.894536 \r\nL 386.007812 9.454536 \r\nL 51.207813 9.454536 \r\nz\r\n\" style=\"fill:#ffffff;\"/>\r\n   </g>\r\n   <g id=\"PathCollection_1\">\r\n    <defs>\r\n     <path d=\"M 0 3 \r\nC 0.795609 3 1.55874 2.683901 2.12132 2.12132 \r\nC 2.683901 1.55874 3 0.795609 3 0 \r\nC 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \r\nC 1.55874 -2.683901 0.795609 -3 0 -3 \r\nC -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \r\nC -2.683901 -1.55874 -3 -0.795609 -3 0 \r\nC -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \r\nC -1.55874 2.683901 -0.795609 3 0 3 \r\nz\r\n\" id=\"m11b57584d5\" style=\"stroke:#1f77b4;\"/>\r\n    </defs>\r\n    <g clip-path=\"url(#p18796fd2c7)\">\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.356043\" xlink:href=\"#m11b57584d5\" y=\"118.257239\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.776665\" xlink:href=\"#m11b57584d5\" y=\"118.11907\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"217.872338\" xlink:href=\"#m11b57584d5\" y=\"118.41613\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.959156\" xlink:href=\"#m11b57584d5\" y=\"118.059124\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.923506\" xlink:href=\"#m11b57584d5\" y=\"118.070835\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.917475\" xlink:href=\"#m11b57584d5\" y=\"118.072816\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.263949\" xlink:href=\"#m11b57584d5\" y=\"118.287491\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.586481\" xlink:href=\"#m11b57584d5\" y=\"118.181543\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.415366\" xlink:href=\"#m11b57584d5\" y=\"118.237752\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.406064\" xlink:href=\"#m11b57584d5\" y=\"118.240808\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.794602\" xlink:href=\"#m11b57584d5\" y=\"118.113178\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.27596\" xlink:href=\"#m11b57584d5\" y=\"118.283545\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.5018\" xlink:href=\"#m11b57584d5\" y=\"118.20936\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.642797\" xlink:href=\"#m11b57584d5\" y=\"118.163044\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.529699\" xlink:href=\"#m11b57584d5\" y=\"118.200195\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.17692\" xlink:href=\"#m11b57584d5\" y=\"118.316079\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.663579\" xlink:href=\"#m11b57584d5\" y=\"118.156218\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.77168\" xlink:href=\"#m11b57584d5\" y=\"118.120708\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.521151\" xlink:href=\"#m11b57584d5\" y=\"118.203003\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.921052\" xlink:href=\"#m11b57584d5\" y=\"118.071641\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.751156\" xlink:href=\"#m11b57584d5\" y=\"118.12745\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.021482\" xlink:href=\"#m11b57584d5\" y=\"118.038651\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.575265\" xlink:href=\"#m11b57584d5\" y=\"118.185228\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.533991\" xlink:href=\"#m11b57584d5\" y=\"118.198785\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.92857\" xlink:href=\"#m11b57584d5\" y=\"118.069171\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.21472\" xlink:href=\"#m11b57584d5\" y=\"118.303662\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.346272\" xlink:href=\"#m11b57584d5\" y=\"117.931962\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.364009\" xlink:href=\"#m11b57584d5\" y=\"118.254623\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.946895\" xlink:href=\"#m11b57584d5\" y=\"118.063152\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.608899\" xlink:href=\"#m11b57584d5\" y=\"118.174179\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.227307\" xlink:href=\"#m11b57584d5\" y=\"117.97104\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.017662\" xlink:href=\"#m11b57584d5\" y=\"118.039906\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.029711\" xlink:href=\"#m11b57584d5\" y=\"118.364435\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.35243\" xlink:href=\"#m11b57584d5\" y=\"118.258426\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.447624\" xlink:href=\"#m11b57584d5\" y=\"118.227156\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.420816\" xlink:href=\"#m11b57584d5\" y=\"118.235962\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.686226\" xlink:href=\"#m11b57584d5\" y=\"118.148778\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.896315\" xlink:href=\"#m11b57584d5\" y=\"118.079767\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.530819\" xlink:href=\"#m11b57584d5\" y=\"118.199828\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.785233\" xlink:href=\"#m11b57584d5\" y=\"118.116256\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.257355\" xlink:href=\"#m11b57584d5\" y=\"118.289657\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.457101\" xlink:href=\"#m11b57584d5\" y=\"118.224043\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.415953\" xlink:href=\"#m11b57584d5\" y=\"117.909072\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.867237\" xlink:href=\"#m11b57584d5\" y=\"118.089318\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.643864\" xlink:href=\"#m11b57584d5\" y=\"118.162694\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.387935\" xlink:href=\"#m11b57584d5\" y=\"118.246763\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.443165\" xlink:href=\"#m11b57584d5\" y=\"118.228621\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.909687\" xlink:href=\"#m11b57584d5\" y=\"118.075374\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.749861\" xlink:href=\"#m11b57584d5\" y=\"118.127875\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.281299\" xlink:href=\"#m11b57584d5\" y=\"118.281792\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.337154\" xlink:href=\"#m11b57584d5\" y=\"118.263444\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.590965\" xlink:href=\"#m11b57584d5\" y=\"118.18007\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.269127\" xlink:href=\"#m11b57584d5\" y=\"118.28579\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.30465\" xlink:href=\"#m11b57584d5\" y=\"118.274121\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.296374\" xlink:href=\"#m11b57584d5\" y=\"118.27684\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.955711\" xlink:href=\"#m11b57584d5\" y=\"118.060256\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.823131\" xlink:href=\"#m11b57584d5\" y=\"118.103807\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.581178\" xlink:href=\"#m11b57584d5\" y=\"118.183285\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.514529\" xlink:href=\"#m11b57584d5\" y=\"118.205178\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.392401\" xlink:href=\"#m11b57584d5\" y=\"118.245296\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.272964\" xlink:href=\"#m11b57584d5\" y=\"118.28453\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.866985\" xlink:href=\"#m11b57584d5\" y=\"118.089401\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.893683\" xlink:href=\"#m11b57584d5\" y=\"118.080631\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.23378\" xlink:href=\"#m11b57584d5\" y=\"117.968914\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.283344\" xlink:href=\"#m11b57584d5\" y=\"118.28112\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.260348\" xlink:href=\"#m11b57584d5\" y=\"118.288674\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.55007\" xlink:href=\"#m11b57584d5\" y=\"118.193504\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.320841\" xlink:href=\"#m11b57584d5\" y=\"117.940315\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.895378\" xlink:href=\"#m11b57584d5\" y=\"118.080075\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.386811\" xlink:href=\"#m11b57584d5\" y=\"117.918645\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.253839\" xlink:href=\"#m11b57584d5\" y=\"118.290812\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.822292\" xlink:href=\"#m11b57584d5\" y=\"118.104082\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.154537\" xlink:href=\"#m11b57584d5\" y=\"117.994944\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.67039\" xlink:href=\"#m11b57584d5\" y=\"118.15398\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.203953\" xlink:href=\"#m11b57584d5\" y=\"118.307199\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.839478\" xlink:href=\"#m11b57584d5\" y=\"118.098437\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.786721\" xlink:href=\"#m11b57584d5\" y=\"118.115767\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.829942\" xlink:href=\"#m11b57584d5\" y=\"118.101569\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.430866\" xlink:href=\"#m11b57584d5\" y=\"118.232661\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.162337\" xlink:href=\"#m11b57584d5\" y=\"118.320869\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.957129\" xlink:href=\"#m11b57584d5\" y=\"118.05979\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.197485\" xlink:href=\"#m11b57584d5\" y=\"118.309324\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.363243\" xlink:href=\"#m11b57584d5\" y=\"118.254874\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"217.799672\" xlink:href=\"#m11b57584d5\" y=\"118.44\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.430062\" xlink:href=\"#m11b57584d5\" y=\"118.232925\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.760009\" xlink:href=\"#m11b57584d5\" y=\"118.124541\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.561346\" xlink:href=\"#m11b57584d5\" y=\"118.1898\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.247594\" xlink:href=\"#m11b57584d5\" y=\"118.292863\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.816983\" xlink:href=\"#m11b57584d5\" y=\"118.105826\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.256992\" xlink:href=\"#m11b57584d5\" y=\"118.289776\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.850105\" xlink:href=\"#m11b57584d5\" y=\"118.094946\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.454946\" xlink:href=\"#m11b57584d5\" y=\"118.224751\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.549839\" xlink:href=\"#m11b57584d5\" y=\"118.19358\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.947098\" xlink:href=\"#m11b57584d5\" y=\"118.063085\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.266742\" xlink:href=\"#m11b57584d5\" y=\"117.958086\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.624942\" xlink:href=\"#m11b57584d5\" y=\"118.168909\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.231681\" xlink:href=\"#m11b57584d5\" y=\"117.969603\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.841543\" xlink:href=\"#m11b57584d5\" y=\"118.097759\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"219.083767\" xlink:href=\"#m11b57584d5\" y=\"118.018191\"/>\r\n     <use style=\"fill:#1f77b4;stroke:#1f77b4;\" x=\"218.731726\" xlink:href=\"#m11b57584d5\" y=\"118.133832\"/>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_1\">\r\n    <g id=\"xtick_1\">\r\n     <g id=\"line2d_1\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL 0 3.5 \r\n\" id=\"m16a882bf9c\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"91.93555\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_1\">\r\n      <!-- −0.0075 -->\r\n      <defs>\r\n       <path d=\"M 10.59375 35.5 \r\nL 73.1875 35.5 \r\nL 73.1875 27.203125 \r\nL 10.59375 27.203125 \r\nz\r\n\" id=\"DejaVuSans-8722\"/>\r\n       <path d=\"M 31.78125 66.40625 \r\nQ 24.171875 66.40625 20.328125 58.90625 \r\nQ 16.5 51.421875 16.5 36.375 \r\nQ 16.5 21.390625 20.328125 13.890625 \r\nQ 24.171875 6.390625 31.78125 6.390625 \r\nQ 39.453125 6.390625 43.28125 13.890625 \r\nQ 47.125 21.390625 47.125 36.375 \r\nQ 47.125 51.421875 43.28125 58.90625 \r\nQ 39.453125 66.40625 31.78125 66.40625 \r\nz\r\nM 31.78125 74.21875 \r\nQ 44.046875 74.21875 50.515625 64.515625 \r\nQ 56.984375 54.828125 56.984375 36.375 \r\nQ 56.984375 17.96875 50.515625 8.265625 \r\nQ 44.046875 -1.421875 31.78125 -1.421875 \r\nQ 19.53125 -1.421875 13.0625 8.265625 \r\nQ 6.59375 17.96875 6.59375 36.375 \r\nQ 6.59375 54.828125 13.0625 64.515625 \r\nQ 19.53125 74.21875 31.78125 74.21875 \r\nz\r\n\" id=\"DejaVuSans-48\"/>\r\n       <path d=\"M 10.6875 12.40625 \r\nL 21 12.40625 \r\nL 21 0 \r\nL 10.6875 0 \r\nz\r\n\" id=\"DejaVuSans-46\"/>\r\n       <path d=\"M 8.203125 72.90625 \r\nL 55.078125 72.90625 \r\nL 55.078125 68.703125 \r\nL 28.609375 0 \r\nL 18.3125 0 \r\nL 43.21875 64.59375 \r\nL 8.203125 64.59375 \r\nz\r\n\" id=\"DejaVuSans-55\"/>\r\n       <path d=\"M 10.796875 72.90625 \r\nL 49.515625 72.90625 \r\nL 49.515625 64.59375 \r\nL 19.828125 64.59375 \r\nL 19.828125 46.734375 \r\nQ 21.96875 47.46875 24.109375 47.828125 \r\nQ 26.265625 48.1875 28.421875 48.1875 \r\nQ 40.625 48.1875 47.75 41.5 \r\nQ 54.890625 34.8125 54.890625 23.390625 \r\nQ 54.890625 11.625 47.5625 5.09375 \r\nQ 40.234375 -1.421875 26.90625 -1.421875 \r\nQ 22.3125 -1.421875 17.546875 -0.640625 \r\nQ 12.796875 0.140625 7.71875 1.703125 \r\nL 7.71875 11.625 \r\nQ 12.109375 9.234375 16.796875 8.0625 \r\nQ 21.484375 6.890625 26.703125 6.890625 \r\nQ 35.15625 6.890625 40.078125 11.328125 \r\nQ 45.015625 15.765625 45.015625 23.390625 \r\nQ 45.015625 31 40.078125 35.4375 \r\nQ 35.15625 39.890625 26.703125 39.890625 \r\nQ 22.75 39.890625 18.8125 39.015625 \r\nQ 14.890625 38.140625 10.796875 36.28125 \r\nz\r\n\" id=\"DejaVuSans-53\"/>\r\n      </defs>\r\n      <g transform=\"translate(70.250394 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"179.199219\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"242.822266\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"306.445312\" xlink:href=\"#DejaVuSans-55\"/>\r\n       <use x=\"370.068359\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_2\">\r\n     <g id=\"line2d_2\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"134.168806\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_2\">\r\n      <!-- −0.0050 -->\r\n      <g transform=\"translate(112.48365 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"179.199219\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"242.822266\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"306.445312\" xlink:href=\"#DejaVuSans-53\"/>\r\n       <use x=\"370.068359\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_3\">\r\n     <g id=\"line2d_3\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"176.402062\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_3\">\r\n      <!-- −0.0025 -->\r\n      <defs>\r\n       <path d=\"M 19.1875 8.296875 \r\nL 53.609375 8.296875 \r\nL 53.609375 0 \r\nL 7.328125 0 \r\nL 7.328125 8.296875 \r\nQ 12.9375 14.109375 22.625 23.890625 \r\nQ 32.328125 33.6875 34.8125 36.53125 \r\nQ 39.546875 41.84375 41.421875 45.53125 \r\nQ 43.3125 49.21875 43.3125 52.78125 \r\nQ 43.3125 58.59375 39.234375 62.25 \r\nQ 35.15625 65.921875 28.609375 65.921875 \r\nQ 23.96875 65.921875 18.8125 64.3125 \r\nQ 13.671875 62.703125 7.8125 59.421875 \r\nL 7.8125 69.390625 \r\nQ 13.765625 71.78125 18.9375 73 \r\nQ 24.125 74.21875 28.421875 74.21875 \r\nQ 39.75 74.21875 46.484375 68.546875 \r\nQ 53.21875 62.890625 53.21875 53.421875 \r\nQ 53.21875 48.921875 51.53125 44.890625 \r\nQ 49.859375 40.875 45.40625 35.40625 \r\nQ 44.1875 33.984375 37.640625 27.21875 \r\nQ 31.109375 20.453125 19.1875 8.296875 \r\nz\r\n\" id=\"DejaVuSans-50\"/>\r\n      </defs>\r\n      <g transform=\"translate(154.716906 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"179.199219\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"242.822266\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"306.445312\" xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"370.068359\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_4\">\r\n     <g id=\"line2d_4\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"218.635318\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_4\">\r\n      <!-- 0.0000 -->\r\n      <g transform=\"translate(201.140006 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"286.279297\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_5\">\r\n     <g id=\"line2d_5\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"260.868574\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_5\">\r\n      <!-- 0.0025 -->\r\n      <g transform=\"translate(243.373262 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-50\"/>\r\n       <use x=\"286.279297\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_6\">\r\n     <g id=\"line2d_6\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"303.10183\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_6\">\r\n      <!-- 0.0050 -->\r\n      <g transform=\"translate(285.606518 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-53\"/>\r\n       <use x=\"286.279297\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"xtick_7\">\r\n     <g id=\"line2d_7\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"345.335086\" xlink:href=\"#m16a882bf9c\" y=\"226.894536\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_7\">\r\n      <!-- 0.0075 -->\r\n      <g transform=\"translate(327.839774 241.492974)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-55\"/>\r\n       <use x=\"286.279297\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"matplotlib.axis_2\">\r\n    <g id=\"ytick_1\">\r\n     <g id=\"line2d_8\">\r\n      <defs>\r\n       <path d=\"M 0 0 \r\nL -3.5 0 \r\n\" id=\"mb466c37db4\" style=\"stroke:#000000;stroke-width:0.8;\"/>\r\n      </defs>\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"225.331783\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_8\">\r\n      <!-- −0.015 -->\r\n      <defs>\r\n       <path d=\"M 12.40625 8.296875 \r\nL 28.515625 8.296875 \r\nL 28.515625 63.921875 \r\nL 10.984375 60.40625 \r\nL 10.984375 69.390625 \r\nL 28.421875 72.90625 \r\nL 38.28125 72.90625 \r\nL 38.28125 8.296875 \r\nL 54.390625 8.296875 \r\nL 54.390625 0 \r\nL 12.40625 0 \r\nz\r\n\" id=\"DejaVuSans-49\"/>\r\n      </defs>\r\n      <g transform=\"translate(7.2 229.131002)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"179.199219\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"242.822266\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"306.445312\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_2\">\r\n     <g id=\"line2d_9\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"189.609689\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_9\">\r\n      <!-- −0.010 -->\r\n      <g transform=\"translate(7.2 193.408908)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"179.199219\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"242.822266\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"306.445312\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_3\">\r\n     <g id=\"line2d_10\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"153.887595\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_10\">\r\n      <!-- −0.005 -->\r\n      <g transform=\"translate(7.2 157.686814)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-8722\"/>\r\n       <use x=\"83.789062\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"147.412109\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"179.199219\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"242.822266\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"306.445312\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_4\">\r\n     <g id=\"line2d_11\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"118.165501\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_11\">\r\n      <!-- 0.000 -->\r\n      <g transform=\"translate(15.579688 121.96472)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_5\">\r\n     <g id=\"line2d_12\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"82.443407\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_12\">\r\n      <!-- 0.005 -->\r\n      <g transform=\"translate(15.579688 86.242626)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_6\">\r\n     <g id=\"line2d_13\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"46.721313\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_13\">\r\n      <!-- 0.010 -->\r\n      <g transform=\"translate(15.579688 50.520532)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-48\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n    <g id=\"ytick_7\">\r\n     <g id=\"line2d_14\">\r\n      <g>\r\n       <use style=\"stroke:#000000;stroke-width:0.8;\" x=\"51.207813\" xlink:href=\"#mb466c37db4\" y=\"10.999219\"/>\r\n      </g>\r\n     </g>\r\n     <g id=\"text_14\">\r\n      <!-- 0.015 -->\r\n      <g transform=\"translate(15.579688 14.798437)scale(0.1 -0.1)\">\r\n       <use xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"63.623047\" xlink:href=\"#DejaVuSans-46\"/>\r\n       <use x=\"95.410156\" xlink:href=\"#DejaVuSans-48\"/>\r\n       <use x=\"159.033203\" xlink:href=\"#DejaVuSans-49\"/>\r\n       <use x=\"222.65625\" xlink:href=\"#DejaVuSans-53\"/>\r\n      </g>\r\n     </g>\r\n    </g>\r\n   </g>\r\n   <g id=\"patch_3\">\r\n    <path d=\"M 51.207813 226.894536 \r\nL 51.207813 9.454536 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_4\">\r\n    <path d=\"M 386.007812 226.894536 \r\nL 386.007812 9.454536 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_5\">\r\n    <path d=\"M 51.207812 226.894536 \r\nL 386.007812 226.894536 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n   <g id=\"patch_6\">\r\n    <path d=\"M 51.207812 9.454536 \r\nL 386.007812 9.454536 \r\n\" style=\"fill:none;stroke:#000000;stroke-linecap:square;stroke-linejoin:miter;stroke-width:0.8;\"/>\r\n   </g>\r\n  </g>\r\n </g>\r\n <defs>\r\n  <clipPath id=\"p18796fd2c7\">\r\n   <rect height=\"217.44\" width=\"334.8\" x=\"51.207813\" y=\"9.454536\"/>\r\n  </clipPath>\r\n </defs>\r\n</svg>\r\n",
      "image/png": "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\n"
     },
     "metadata": {
      "needs_background": "light"
     }
    }
   ],
   "source": [
    "X3 = X2 - X2.dot(w2).reshape(-1, 1) * w2\n",
    "plt.scatter(X3[:,0], X3[:,1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": "3.267783954707948e-06\n89.99981276977103\n"
    }
   ],
   "source": [
    "print(w.dot(w2))\n",
    "# 也就是cos90的运算\n",
    "print(np.arccos(w.dot(w2))/np.pi*180)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 求出前n个主成分\n",
    "def first_n_components(n, X, eta=0.01, n_iters = 1e4, epsilon=1e-8):\n",
    "    # 不要破坏原有数据\n",
    "    X_pca = X.copy()\n",
    "    X_pca = demean(X_pca)\n",
    "    res = []\n",
    "    for i in range(n):\n",
    "        initial_w = np.random.random(X_pca.shape[1])\n",
    "        w = first_component(X_pca, initial_w, eta)\n",
    "        res.append(w)\n",
    "        \n",
    "        X_pca = X_pca - X_pca.dot(w).reshape(-1, 1) * w\n",
    "        \n",
    "    return res"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[array([ 0.78307192,  0.62193116]), array([-0.62192683,  0.78307536])]"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "first_n_components(2, X)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7-final"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}